Computer technology requirements vary and are often dynamic, especially over extended periods of time. Hard drive capacities, bus speeds, and processor speeds can double every few years. A user may require 10 gigabytes (GB) of storage capacity at the start of a business, which soon increases to a requirement of 1000 GB of storage when the business becomes successful.
On-demand or utility computing is a computing system or model that allocates computing resources or assets to an organization and its individual users on an as-needed basis to allow the organization to efficiently meet dynamic computing demands. For example, if a group of users is working with applications that demand a large amount of bandwidth, the on-demand computing system can allocate additional bandwidth specifically to this group, such as from a pool of resources that are not currently utilizing the bandwidth.
On-demand computing can provide for the packaging of the computing resources, such as computation and storage, as a metered service similar to a physical public utility. On-demand computing has the advantage of low initial cost to acquire hardware. Customers requiring very large computations or having a sudden peak in demand can also avoid the delays that would result from physically acquiring, assembling and/or implementing a large number of computer resources. For example, Internet hosting services have the capability to quickly arrange for the leasing of individual servers, such as to provision a bank of web servers to accommodate a sudden surge in traffic to a web site.
The distribution of resources from a pool of resources in on-demand computing is done using an identical hardware model. The identical hardware model attempts to satisfy the request for use of a resource by distributing the first available resource to the requestor that satisfies the hardware specifications. Typically, a pool owner has numerous configurations of similar hardware that are placed together into a heterogeneous pool of resources. However, distributing the resource from the pool based on the first resource to match approach, can result in lower overall utilization of resources from the pool. More powerful resources which are the first available assets may be distributed for jobs where less powerful resources could have been distributed. Subsequent requests for resources that require the more powerful resources can thus be limited by the inefficient use of the available resources from the pool.
A need exists for efficient use of resources from a pool of resources in an on-demand computing system. A need further exists for managing the distribution of resources from a pool of resources based at least in part on criteria associated with the resources, such as criteria established by the requestor, the pool owner and/or some other entity.